// pub fn goldbach_conjecture() -> u64 {
//     todo!()
// }
pub fn goldbach_conjecture() -> u64 {
    // 判断是否为素数的函数
    fn is_prime(n: u64) -> bool {
        if n < 2 {
            return false;
        }
        for i in 2..=(n as f64).sqrt() as u64 {
            if n % i == 0 {
                return false;
            }
        }
        true
    }

    // 判断一个奇数是否能表示为素数 + 2 * 平方数
    fn can_represent(n: u64) -> bool {
        for p in 2..n {
            if is_prime(p) {
                let remainder = n - p;
                if remainder % 2 == 0 {
                    let square = remainder / 2;
                    let root = (square as f64).sqrt() as u64;
                    if root * root == square {
                        return true;
                    }
                }
            }
        }
        false
    }

    // 寻找前两个不能表示的奇合数
    let mut count = 0;
    let mut sum = 0;
    let mut n = 9; // 从9开始，因为之前的奇数都可以表示

    while count < 2 {
        // 确保是奇数且不是素数
        if n % 2 == 1 && !is_prime(n) {
            // 如果不能表示
            if !can_represent(n) {
                sum += n;
                count += 1;
            }
        }
        n += 2;
    }

    sum
}
